package com.vision.controller;

import com.vision.pojo.AjaxResult;
import com.vision.pojo.entity.Tag;
import com.vision.pojo.vo.UpdateTagListVO;
import com.vision.service.TagService;
import org.jetbrains.annotations.NotNull;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.Arrays;
import java.util.List;

@RestController
@RequestMapping("/tag")
public class TagController {

    @Autowired
    private TagService tagService;

    /**
     * 给视频添加标签
     * @return 添加成功
     */
    @PostMapping("/addTagToVideo")
    public AjaxResult addTagToVideo(@RequestBody Integer[] tagList) {
        // 判空
        if (tagList.length != 0) {
            tagService.addTagToVideo(tagList);
        }
        return AjaxResult.success();
    }

    /**
     * 获取所有标签
     * @return 所有标签
     */
    @GetMapping("/getAllTag")
    public AjaxResult<List<Tag>> getAllTag() {
        return AjaxResult.success(tagService.getAllTag());
    }

    /**
     * 根据视频 id 获取标签
     * @param videoId 视频 id
     * @return 标签列表
     */
    @GetMapping("/getTagByVideoId")
    public AjaxResult<List<Tag>> getTagByVideoId(@NotNull Integer videoId) {
        return AjaxResult.success(tagService.getTagByVideoId(videoId));
    }

    /**
     * 根据视频 ID 更改标签
     * @param updateTagListVO 标签列表对象
     * @return 更改成功
     */
    @PutMapping("/updateTagToVideo")
    public AjaxResult updateTagToVideo (@RequestBody UpdateTagListVO updateTagListVO) {
        // 判空
        if (updateTagListVO.getTagList().length != 0) {
            tagService.updateTagToVideo(updateTagListVO);
        }
        return AjaxResult.success();
    }
}
